package com.github.sbb.sherry.primitives.config.fetcher;

import com.github.sbb.sherry.common.base.ValidateResult;
import java.util.Map;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

/**
 * Http Fetcher Config`
 */
@Setter
@Getter
@NoArgsConstructor
@ToString
public class HttpFetcherConfig extends FetcherConfig {

  private String url;

  /**
   * method 是创建请求时使用的方法
   */
  private String method = "GET";

  /**
   * 自定义请求头
   */
  private Map<String, String> headers;

  /**
   * `params` 是与请求一起发送的 URL 参数
   */
  private Map<String, String> params;

  /**
   * `data` 是作为请求体被发送的数据 仅适用 'PUT', 'POST', 'DELETE 和 'PATCH' 请求方法
   */
  private Map<String, String> data;

  // HTTP Basic Auth
  private HttpAuth httpAuth;

  @Override
  public ValidateResult validate() {
    return new ValidateResult(true, null);
  }
}
